package com.central.apps.entity;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * 项目计划任务实体
 *
 * @author 李大超
 * @date 2022/8/16
 */
@Setter
@Getter
public class MpxjTaskBean implements Serializable {
    private static final long serialVersionUID = -3323529750871923313L;

    /**
     * id
     */
    private String id;
    /**
     * 编号id
     */
    private String recordId;
    /**
     * 父节点编号
     **/
    private String parentId;
    /**
     * 任务名称
     **/
    private String name;
    /**
     * 任务级别。（1代表最大的一个阶段，以此类推）
     */
    private Integer level;
    /**
     * 任务描述
     */
    private String description;
    /**
     * 完成百分比
     **/
    private Integer progress;
    /**
     * 工作日志
     **/
    private boolean progressByWorklog;
    /**
     * 任务类型ID
     **/
    private String typeId;
    /**
     * 任务类型描述
     **/
    private String type;
    /**
     * 任务负责人id
     */
    private Integer manager;
    /**
     * 任务负责人
     */
    private String managerName;
    /**
     * 状态
     */
    private String status;
    /**
     * 前置任务
     **/
    private String depends;
    /**
     * 开始时间
     **/
    private long start;
    /**
     * 结束时间
     **/
    private long end;
    /**
     * 工期
     **/
    private Integer duration;
    /**
     * 工期单位
     */
    private String durationTimeUnit;
    /**
     *
     */
    private boolean startIsMilestone;
    /**
     *
     */
    private boolean endIsMilestone;
    /**
     * 是否有子任务
     */
    private boolean hasChild;
    /**
     * 是否折叠
     */
    private boolean collapsed;
    /**
     * 是否可写
     */
    private boolean canWrite;
    /**
     * 是否可添加
     */
    private boolean canAdd;
    /**
     * 是否可删除
     */
    private boolean canDelete;
    /**
     * 是否可添加重要议题
     */
    private boolean canAddIssue;
    /**
     * 相关性
     */
    private Integer relevance;
    /**
     * 任务等级
     */
    private String taskLevel;
    /**
     * 实际开始时间
     **/
    private long actStart;
    /**
     * 实际结束时间
     **/
    private long actEnd;
    /**
     * 实际工期
     **/
    private Integer actDuration;
    /**
     * 分配人员
     */
    private String assigns;
    /**
     * 分配人员
     */
    private String assignsDesc;
    /**
     * 里程碑id
     */
    private Integer mlid;

    /*
     * 计算关键路径属性
     */
    private Integer earlyStart;
    private Integer earlyFinish;
    private Integer latestStart;
    private Integer latestFinish;
    private Integer criticalCost;
    private boolean isCritical;

    /**
     * 分配列表
     */
    private List<MpxjAssignsBean> assigs;
}
